window.onload = init;

var tableCalledId = false;

function init()
{
   $(document).ready(function(){
       initAjax();
   });

}

function initAjax()
{
    getProjectAjax();
    getTablesMenuAjax();
    getTable();
    showAddCollumnForm();
    addCollumnAjax();
    saveTableAjax();
    dropTableAjax();
    initRelatorysFunctions();    
}

function initTableFunctions()
{
    showAddCollumnForm();
    addCollumnAjax();
    saveTableAjax();
    dropTableAjax();
    dropCollumnAjax();
}

function getProjectAjax()
{
    $(".projectsList").click(function(){
        array = this.id;
        array = array.split("_");
        projectId = array[1];
        
        $.post("/projects/project",
            {
                'projectId': projectId
            }
            ,function(data) 
            {
                //$('#projectContent').html(data);
                $('#projectContent').html('');           
                $(data).appendTo( "#projectContent" ).trigger( "create" );
                initAjax();
            });
        //$('input[name="'++'"]').click
    });    
}
//retorna as tabelas e seu menu por projeto
function getTablesMenuAjax()
{
    $(".showTablesMenu").click(function(){
        
        array = this.id;
        array = array.split("_");
        projectId = array[1];
        $.post("/table/index",
        {
            'projectId': projectId
        }
        ,function(data) 
        {
            $('#projectSubMenu').empty();
            $('#projectSubMenu').html(data);
            initAjax();
        });
    });    
}

function getTable()
{
    $(".linkTable").click(function(){

        array = this.id;
        array = array.split("_");
        tableId = array[1];
        projectId = array[2];
        var id = '#tableContent_'+tableId;

        //alert(this.id);
        //alert(tableCalledId);

        if($('#tableContent_'+tableId).hasClass('disabled'))
        {
            $('.tablesContent').addClass('disabled');
            $('#tableContent_'+tableId).removeClass('disabled');
            if(!tableCalledId || this.id != tableCalledId)
            {
                $.post("/table/content",
                {
                    'tableId': tableId,
                    'projectId': projectId
                }
                ,function(data) 
                {                
                    $(id).html(data);
                    initTableFunctions();
                });
                tableCalledId = this.id;               
            }         
        }
        else
        {
            $('#tableContent_'+tableId).addClass('disabled');
        }       
    });    
}

//funçao que habilita um formulário para adicionar ma nova coluna
function showAddCollumnForm()
{
    $(".addCollumn").click(function()
    {
        $('.newCollumnMenu').removeClass('disabled');
    });    
}

function addCollumnAjax()
{
   $('input[name="applyNewCollumn"]').click(function()
   {
        array = $('input[name="tableInfo"]').val();
        array = array.split("_");
        projectId = array[1];
        tableId = array[3];

        collumnType = $('select[name="newCollumnType"]').val();
        collumnName = $('input[name="newCollumnName"]').val();

        $.post("/table/content",
        {
            'action': 'addCollumn',
            'tableId': tableId,
            'projectId': projectId,
            'collumnType': collumnType,
            'collumnName': collumnName
        }
        ,function(data) 
        {
            var id = '#tableContent_'+tableId;
            $(id).html(data);
            initTableFunctions();
        });
    });    
}

function saveTableAjax()
{   
    $('.saveTable').submit(function(){     
        postData = {};

        var array = $(this).attr('id');
        array = array.split("_");
        var tableId = array[1];
        var projectId = array[2];


        $(this).find(':input').each(function()
        {
            postData[$(this).attr('name')] = $(this).val();
        });

        postData['action'] = 'salvarDados';

       $.ajax({
            type: 'POST',
            url: '/table/content',
            data: 'tableAjax=' + JSON.stringify( postData ),
            dataType: 'json',
            success: function(resposta){
            
                $.post("/table/content",
                {
                    'tableId': tableId,
                    'projectId': projectId
                }
                ,function(data) 
                {                
                    $("#tableContent_"+tableId).html(data);
                    initTableFunctions();
                });       
            }
        });
    });    
}

function dropCollumnAjax()
{
  $('.columnRemove').click(function(){
        var array = $(this).attr('id');
        array = array.split("_");
        var tableId = array[2];
        var columnName = array[1];
        var projectId = array[3];

        if(confirm('Deseja realmente remover a coluna '+columnName+' ?'))
        {
            table = 
            {
                action: 'dropColumn',
                tableId: tableId,
                columnName: columnName
            }

            $.ajax({
                type: 'POST',
                url: '/table/content',
                data: 'tableAjax=' + JSON.stringify( table ),
                dataType: 'json',
                success: function(resposta){
                     $.post("/table/content",
                    {
                        'tableId': tableId,
                        'projectId': projectId
                    }
                    ,function(data) 
                    {                
                        $("#tableContent_"+tableId).html(data);
                        initTableFunctions();
                    });       
                }
            });
        }
    });
}

function dropTableAjax()
{
    $('.dropTable').click(function(){
        array = $(this).attr('id');
        array = array.split("_");
        tableId = array[2];

        if(confirm('Deseja realmente remover a tabela?'))
        {
            table = 
            {
                action: 'dropTable',
                id: tableId
            }
            $.ajax({
                type: 'POST',
                url: '/table/content',
                data: 'tableAjax=' + JSON.stringify( table ),
                dataType: 'json',
                success: function(resposta){
                    //if ( resposta.status ) window.location = resposta.url;
                }
            });
            $('#tableContent_'+tableId).addClass('disabled');
            $('#table'+tableId).hide();
        }
    });
}

// PARTE DOS RELATÓRIOS //

function initRelatorysFunctions()
{   
    freezeInputs();
    getRelatorysMenuAjax();
    getRelatorysAjax();
}

function freezeInputs()
{
    $('.freeze').disabled = true;
}

function getRelatorysMenuAjax()
{
    $(".showRelatorysMenu").click(function(){
        
        array = this.id;
        array = array.split("_");
        projectId = array[1];
        $.post("/relatorys/index",
        {
            'projectId': projectId
        }
        ,function(data) 
        {
            $('#projectSubMenu').empty();
            $('#projectSubMenu').html(data);
            initAjax();
        });
    });    
}


function getRelatorysAjax()
{
    $(".linkRelatoryTable").click(function(){
        var array = this.id;
        array = array.split("_");
        var tableId = array[1];
        var projectId = array[2];
        var id = '#tableContent_'+tableId;
       
        if($('#tableContent_'+tableId).hasClass('disabled'))
        {
            $('.tablesContent').addClass('disabled');
            $('#tableContent_'+tableId).removeClass('disabled');

             if(!tableCalledId || this.id != tableCalledId)
             {
                $.post("/relatorys/content",
                {
                    'action': 'showRelatorys',
                    'tableId': tableId,
                    'projectId': projectId
                }
                ,function(data) 
                {                
                    $(id).html(data);
                    initRelatorysFunctions();
                });
                tableCalledId = this.id;     
            }
        }
        else
        {
            $('#tableContent_'+tableId).addClass('disabled');
        }       
    });    
}
/*
array = this.id;
        array = array.split("_");
        tableId = array[1];
        projectId = array[2];
        var id = '#tableContent_'+tableId;

        //alert(this.id);
        //alert(tableCalledId);

        if($('#tableContent_'+tableId).hasClass('disabled'))
        {
            $('.tablesContent').addClass('disabled');
            $('#tableContent_'+tableId).removeClass('disabled');
            if(!tableCalledId || this.id != tableCalledId)
            {
                $.post("/table/content",
                {
                    'tableId': tableId,
                    'projectId': projectId
                }
                ,function(data) 
                {                
                    $(id).html(data);
                    initTableFunctions();
                });
                tableCalledId = this.id;               
            }         
        }
        else
        {
            $('#tableContent_'+tableId).addClass('disabled');
        }       
*/